Video Configuration File Editor for Visual Prosthesis Fitting

ABSTRACT

A method of editing a video configuration file downloadable to or from a video processing unit of a fitting system for a visual prosthesis is shown. The visual prosthesis has a plurality of electrodes and the video configuration file defines mapping of a video signal captured from a camera of the visual prosthesis to an electrical signal for the electrodes. The editing controls a brightness map for an individual electrode or electrode groups, together with a temporal stimulation pattern to which an individual electrode or electrode groups are assigned. A related computer-operated system is also disclosed.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional application of U.S. patent application Ser. No. 12/114,635, filed May 2, 2008, for “Video Configuration File editor for a Visual Prosthesis Fitting and Related Method”, which claims priority to U.S. Provisional Application 60/928,407 filed on May 8, 2007 and U.S. Provisional Application 60/928,440 filed on May 8, 2007, the contents of both of which are incorporated herein by reference in their entirety. The present application may be related to U.S. application Ser. No. 11/796,425, filed Apr. 27, 2007 for “Visual Prosthesis Fitting”, which is also incorporated herein by reference in its entirety.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

The present invention was made with support from the United States Government under Grant number R24EY12893-1, awarded by the National Institutes of Health. The United States Government has certain rights in the invention.

FIELD

The present disclosure relates to visual prostheses. In particular, the present disclosure relates to configuring a visual prosthesis implanted in a patient and controlling a video configuration file for visual prosthesis fitting. More particularly, it relates to a video configuration file editor for visual prosthesis fitting and related method.

SUMMARY

According to a first aspect, a method of controlling a video configuration file downloadable to or from a video processing unit of a fitting system for a visual prosthesis having a plurality of electrodes is disclosed, the video configuration file defining spatial mapping of a video signal captured from a camera of the visual prosthesis to an electrical signal for one or more electrodes of the plurality of electrodes, the method comprising: controlling a brightness map for an individual electrode or electrode groups; controlling a temporal stimulation pattern to which an individual electrode or electrode groups are assigned; and controlling the spatial mapping.

According to a second aspect, a computer-operated system comprising a display component is disclosed, the display component having a graphical user interface allowing to control a video configuration file, the graphical user interface comprising: a video configuration file editor, the video configuration file downloadable to or from a video processing unit of a fitting system for a visual prosthesis having a plurality of electrodes, the video configuration file defining spatial mapping of a video signal captured from a camera of the visual prosthesis to an electrical signal for one or more electrodes of the plurality of electrodes.

According to a third aspect, a video configuration file (VCF) editor is disclosed, wherein: the VCF editor resides on a computer as a graphical user interface application; the VCF is downloadable to or from a video processing unit of a fitting system for a visual prosthesis having an array of electrodes; and the VCF editor automatically calculates a maximum number of non-simultaneous stimulation electrode groups, defined as timing groups, and assigning each electrode to a timing group.

Further embodiments are shown in the specification, drawings and claims of the present application.

BRIEF DESCRIPTION OF THE FIGURES

FIGS. 1 and 2 show a retinal stimulation system.

FIG. 3 shows components of a fitting system.

FIG. 4 shows a Main Menu computer screen.

FIG. 5 shows a Login computer screen.

FIG. 6 shows an ‘Electrode Integrity’ message box.

FIG. 7 shows a diagnostics computer screen.

FIG. 8 shows a ‘Measuring Impedance’ message box.

FIG. 9 shows a computer screen indicating impedance values.

FIG. 10 shows a message box indicating progress of waveform measurements.

FIGS. 11 and 12 show waveform computer screens.

FIG. 13 shows a ‘waiting for connection’ message box.

FIG. 14 shows a computer window requesting specific information.

FIG. 15 shows a ‘connected’ message box.

FIG. 16 shows a Psychophysical Test System (PTS) main screen.

FIG. 17 shows a ‘Threshold with Method of Adjustment’ screen.

FIG. 18 shows a waveform related to FIG. 17.

FIG. 19 shows a ‘Threshold Test’ computer screen.

FIGS. 20 and 21 show warning dialog message boxes.

FIG. 22 shows a ‘IN TRIAL: Threshold with method of adjustment’ message.

FIG. 23 shows a ‘Threshold Test with Method of Adjustment’ message box.

FIG. 24 shows an ‘Input Your Comments’ message box.

FIG. 25 shows a ‘Simple Direct Stimulation’ computer screen.

FIG. 26 shows a warning dialog message box.

FIG. 27 shows an ‘EXPERIMENT: direct stimulation’ message box.

FIG. 28 shows an ‘Input Your Comments’ message box.

FIG. 29 shows a video configuration file (VCF) editor screen.

FIG. 30 shows a new VCF global parameter screen with default values.

FIG. 31 shows the screen of FIG. 2 with a stimulation frequency pull down menu open.

FIG. 32 shows a VCF editor screen with default global parameters and an arbitrary Imin (minimum stimulation current) file.

FIG. 33 shows a screen displayed after the “Load” button of the VCF editor screen is clicked.

FIG. 34 shows a VCF editor screen with a VCF filename displayed.

FIG. 35 shows a VCF editor screen with a brightness map corresponding to a selected electrode.

FIG. 36 shows a VCF editor screen with a brightness map corresponding to a newly selected electrode.

FIG. 37 shows a VCF editor screen with a brightness map for multiple electrodes.

FIG. 38 shows a VCF editor screen with multiple electrodes selected and distance between electrodes maximized.

FIG. 39 shows a VCF editor screen where timing group for an individual electrode is changed.

FIG. 40 shows a VCF editor screen where one electrode is disabled.

FIG. 41 shows a screen displaying where VCFs can be stored.

FIG. 42 shows a video screen with a stimulation section, a video display section, and a video configuration section.

FIG. 43 shows a “Load” screen appearing upon clicking on the “Load configuration” button of the video screen of FIG. 12.

FIG. 44 shows a video screen after start of a video simulation.

FIG. 45 shows a high level diagram of a possible software architecture of the VCF editor.

FIG. 46 is a table showing some additional software classes that can be used by the VCF editor.

FIG. 47 shows a possible software architecture for software objects such as spatial map, timing map and brightness map.

FIG. 48 is a diagram showing auto-generation of a video configuration.

FIG. 49 is a diagram showing editing of the video configuration.

FIG. 50 is a diagram showing an operation of saving the video configuration to file.

FIG. 51 is a diagram showing an operation of loading a video configuration from an existing file.

FIG. 52 is a diagram of the process used to maximize distance among electrodes of the same timing group.

FIG. 53 shows a result of an algorithm for assigning a timing group.

In the following description, like reference numbers are used to identify like elements. Furthermore, the drawings are intended to illustrate major features of exemplary embodiments in a diagrammatic manner. The drawings are not intended to depict every feature of every implementation nor relative dimensions of the depicted elements, and are not drawn to scale.

DETAILED DESCRIPTION

The present disclosure describes a method of fitting, configuring and optimizing a visual prosthesis (i.e. device) for an individual patient (i.e. subject) including creating a map of brightness to electrical stimulation levels for each electrode, and using that map for the stimulation of retinal neurons to create artificial vision. Also described is operation and use of a video configuration file (VCF) editor. A VCF specifies the method for converting the output of a video chain to the temporal pattern of stimulation values for each electrode and involves a timing map, spatial mapping and brightness mapping, as later explained in detail.

A Retinal Stimulation System, disclosed in U.S. application Ser. No. 11/207,644, filed Aug. 19, 2005 for “Flexible Circuit Electrode Array” by Robert J. Greenberg, et, al. incorporated herein by reference, is intended for use in subjects with retinitis pigmentosa. FIG. 1 and FIG. 2 show a Retinal Stimulation System (1) wherein a patient/subject is implanted with a visual prosthesis to be fitted, configured and optimized according to the present disclosure.

The Retinal Stimulation System (1) is an implantable electronic device containing electrode array (2) that is electrically coupled by a cable (3) that pierces sclera of the subject's eye and is electrically coupled to an electronics package (4), external to the sclera. The Retinal Stimulation System (1) is designed to elicit visual percepts in blind subjects with retinitis pigmentosa.

The fitting system and method according to the present disclosure may be used to establish the most effective Video Processing Unit (VPU) settings for subjects implanted with a visual prosthesis. The psychophysical testing according to the present disclosure will be used to establish the electrical pulse parameters for stimulating retinal neurons and to determine the optimal method for transforming the video input signal to a useful pattern of electrical stimulation.

Establishing a stimulation level that is just detectable to a subject (threshold) allows establishing the lowest stimulation value to be used when mapping the darkest barely visible part of the video image to a stimulation profile. A 150-750 ms train of 10-100 Hz pulses (e.g., nine or ten pulses) may be used as the standard stimulus to determine the threshold. By way of example and not of limitation, the current threshold for each individual electrode may be determined using a method of adjustment.

The procedure for converting a video camera input to a pattern of electrical stimulation can be broken down into two general parts: the video chain and the video configuration file (VCF).

The Video Chain

The image is initially captured by a video camera mounted on the frame of the glasses. This video image is sent to a Video Processing Unit (VPU), where the video input signal (e.g., NTSC video input signal) is converted to a digital image. This digital image is processed by a series of digital filters. The goal of these operations is to construct a processed video image that is to be presented to the retina by way of electrical stimulation. This includes any contrast, brightness or zoom manipulation as well as any additional filtering to convert the video image to the inferred “neural image” best suited for presentation to the retinal circuitry.

The goal of the video chain is to output an image that is to be presented to the retina. This image to be presented to the retina should have sufficient spatial resolution and a large enough field of view to accommodate any spatial transformation needed to construct the VCF (see below). The image to be presented to the retina should consist of intensity values that are scaled from black (0) to white (255) in a way that allows it to maximize the dynamic range for perceived brightness generated by the VCF (see below).

The Video Configuration File (VCF)

The VCF specifies the method for converting the output of the video chain to the temporal pattern of stimulation values for each electrode and involves the Timing Map, Spatial Mapping and Brightness Mapping.

The output of the video chain is an image that has higher resolution than the electrode array. The goal of the Spatial Mapping is to determine which parts of the image are mapped to the individual electrodes. The video image may be initially mapped to the electrodes using the retinotopic co-ordinates (measured using fundus photograph) of the electrodes. A matrix transformation procedure may be used to sub-sample the image down to the resolution of the electrode array.

The above described basic retinotopic organization may be checked using two-point discrimination. In particular, pairs of electrodes may be presented in close temporal sequence and subjects may be asked about the relative position of the pair, e.g. did the dot pair move Left-Right or Right-Left.

Another method for determining the spatial mapping is to determine the map of the locations of the phosphenes generated by every electrode in the array and use this map to determine which sections of the image each electrode is mapped to. The phosphene locations can be obtained by stimulating an electrode and asking the subject to place a reflective ball in the 3D location of the phosphene. The 3D location of the ball can be measured with an infrared stereo camera system. The advantage of this technique is that it directly takes into account any spatial distortions in the perceived locations of the electrodes or phosphenes. The disadvantage is that it requires the experimenter to obtain a map of the phosphenes generated by every electrode. Interpolation techniques may be used to determine the spatial map of the phosphene locations without making a measurement for every electrode. If the mapping is orderly, it may be possible to sample fewer electrodes and still be able to map the distortions in the perceived locations of the electrodes or phosphenes.

Once it has been determined which parts of the image are mapped to which electrode, a single number will be determined to represent the brightness of that section of pixels in the image through Brightness Mapping. Various methods could be used to determine this value. This selection determines the single intensity value that is to be transmitted to the retina, through an electrical stimulation protocol.

The method of fitting Retinal Stimulation System (1) according to the present disclosure may include a technique for mapping the position in the visual field of the phosphenes produced by stimulating each electrode in the electrode array (2) of FIG. 1. These phosphene locations may then be overlayed on the video image to determine the spatial regions of the video image that are mapped to each electrode.

The results of these mappings may then be used to construct a lookup table that specifies which sections of the video image are used to determine the stimulation level sent to a given electrode. For instance, if a phosphene produces a large circle in the upper-left part of the video image, then the stimulation sent to this electrode is determined by analyzing that part of the video image in real-time.

This method of mapping the video image to the spatial pattern of stimulation accurately corrects any spatial distortions of the retinotopic map. It can rapidly and easily be done and results in a spatial map that is customized for each individual subject.

The goal of the Brightness Mapping procedure is to produce a perceptual brightness level that corresponds to this intensity value. This can be accomplished in a number of different ways. For instance, by varying the pulse amplitude to control brightness (amplitude coding), the pulse frequency (frequency coding), the pulse width, or directly modulating the ganglion cell output with short electrical pulses of varying frequency (temporal coding). The VCF needs to ensure that equally bright image values are transformed into stimulation patterns that give as a result equally bright phosphenes. This mapping is established by determining the pulse parameter value to be mapped to the minimum image value (0) for each electrode, determining the pulse parameter value to be mapped for the maximum image value (255), and determining the mapping for the intermediate values.

For amplitude coding, the 0 intensity value may be set to be equal to the threshold pulse amplitude for every electrode. For the electrode with the median threshold, the 255 intensity value may be set to the maximum safe current level. The more sensitive electrodes will have the 255 intensity value mapped to the current amplitude that matches the brightness of the median electrode at its maximum current level. When the less sensitive electrodes are set to their maximum amplitude, they will be perceptually dimmer than the median electrode at its maximum amplitude. Every electrode will linearly map the intensity values to the amplitude range between the specified min and max values.

Referring to FIG. 3, a Fitting System (FS) according to the present disclosure may be used to configure and optimize the visual prosthesis (3) of the Retinal Stimulation System (1).

The Fitting System may comprise custom software with a graphical user interface (GUI) running on a dedicated laptop computer (10). Within the Fitting System are modules for performing diagnostic checks of the implant, loading and executing video configuration files, viewing electrode voltage waveforms, and aiding in conducting psychophysical experiments. A video module can be used to download a video configuration file to a Video Processing Unit (VPU) (20) and store it in non-volatile memory to control various aspects of video configuration, e.g. the spatial relationship between the video input and the electrodes. The software can also load a previously used video configuration file from the VPU (20) for adjustment.

The Fitting System can be connected to the Psychophysical Test System (PTS), located for example on a dedicated laptop (30), in order to run psychophysical experiments. In psychophysics mode, the Fitting System enables individual electrode control, permitting clinicians to construct test stimuli with control over current amplitude, pulse-width, and frequency of the stimulation. In addition, the psychophysics module allows the clinician to record subject responses. The PTS may include a collection of standard psychophysics experiments developed using for example MATLAB (MathWorks) software and other tools to allow the clinicians to develop customized psychophysics experiment scripts.

Any time stimulation is sent to the VPU (20), the stimulation parameters are checked to ensure that maximum charge per phase limits, charge balance, and power limitations are met before the test stimuli are sent to the VPU (20) to make certain that stimulation is safe.

Using the psychophysics module, important perceptual parameters such as perceptual threshold, maximum comfort level, and spatial location of percepts may be reliably measured. Based on these perceptual parameters, the fitting software enables custom configuration of the transformation between video image and spatio-temporal electrode stimulation parameters in an effort to optimize the effectiveness of the retinal prosthesis for each subject.

The Fitting System laptop (10) is connected to the VPU (20) using an optically isolated serial connection adapter (40). Because it is optically isolated, the serial connection adapter (40) assures that no electric leakage current can flow from the Fitting System laptop (10).

As shown in FIG. 3, the following components may be used with the Fitting System according to the present disclosure. A Video Processing Unit (VPU) (20) for the subject being tested, a Charged Battery (25) for VPU (20), Glasses (5), a Fitting System (FS) Laptop (10), a Psychophysical Test System (PTS) Laptop (30), a PTS CD (not shown), a Communication Adapter (CA) (40), a USB Drive (Security) (not shown), a USB Drive (Transfer) (not shown), a USB Drive (Video Settings) (not shown), a Patient Input Device (RF Tablet) (50), a further Patient Input Device (Jog Dial) (55), Glasses Cable (15), CA-VPU Cable (70), CFS-CA Cable (45), CFS-PTS Cable (46), Four (4) Port USB Hub (47), Mouse (60), LED Test Array (80), Archival USB Drive (49), an Isolation Transformer (not shown), adapter cables (not shown), and an External Monitor (not shown).

The external components of the Fitting System according to the present disclosure may be configured as follows. The battery (25) is connected with the VPU (20). The PTS Laptop (30) is connected to FS Laptop (10) using the CFS-PTS Cable (46). The PTS Laptop (30) and FS Laptop (10) are plugged into the Isolation Transformer (not shown) using the Adapter Cables (not shown). The Isolation Transformer is plugged into the wall outlet. The four (4) Port USB Hub (47) is connected to the FS laptop (10) at the USB port. The mouse (60) and the two Patient Input Devices (50) and (55) are connected to four (4) Port USB Hubs (47). The FS laptop (10) is connected to the Communication Adapter (CA) (40) using the CFS-CA Cable (45). The CA (40) is connected to the VPU (20) using the CA-VPU Cable (70). The Glasses (5) are connected to the VPU (20) using the Glasses Cable (15).

The graphical user interface of the Fitting System may have six options on the FS Main Menu (7) as shown in FIG. 4. For example, Subject Testing, Transfer Session, Archive Sessions, Load Security File, Maintenance, and Exit.

The Subject Testing option may be selected when performing: diagnostic check (i.e. impedance and waveforms) on the status of the implant, viewing waveforms for selected electrodes, loading a video configuration file to the VPU and stimulating the subject using the downloaded video stimulation parameters, executing psychophysical experiments. The Transfer Session option may be selected when copying file(s) to a thumb drive. The Archive Sessions option may be selected when archiving all data files on the FS laptop (10) to the external drive (49). The Load Security File option may be selected to enable use of the Fitting System. The Load Security File option may be chosen at the initial clinical testing session. The Maintenance option may be selected to perform maintenance on one or more components of the system. The Maintenance option may be set up to only be accessed by an authorized person. The Exit option may be selected to close out the main menu.

The Subject Testing option is more fully described in the following paragraphs.

Prior to using a VPU (20) with a new subject for the first time, the following steps may be performed by an authorized person to configure the VPU (20): 1) Confirm that the VPU (20) is configured for use, 2) Match the VPU (20) to an implant, 3) Program the VPU (20) with the Subject's ID, and 4) Label the VPU (20) with the Subject's ID.

Prior using the Subject Testing option, the VPU (20) should be on, the subject should put on the Glasses (5), the Glasses (5) should be adjusted until a link is obtained with the implant, and the VPU (20) should confirm that the implant is working by running start-up tests.

Once the Subject Testing option is selected from window (7), a login screen (8) shown in FIG. 5 may be displayed with fields for User ID, Password and Subject ID.

After the login, a diagnostic application may be initiated to display the status of the implant. Through the diagnostic application, an electrode integrity check may be performed and the electrode status may be displayed and the impedance and waveforms for each of the electrodes can be measured.

An “Electrode Integrity’ message box (6), shown in FIG. 6, may be displayed in the event that any newly broken/shorted electrodes are detected or broken/shorted electrodes are present. If no newly detected broken/shorted electrodes are detected, this message box will not appear and the diagnostics screen (109) shown in FIG. 7 may be displayed.

The Diagnostic Module Screen (109) shown in FIG. 7 may contain: 1) Session Information (101) displaying (a) Experimenter (User) ID, (b) Subject ID, (c) VPU Connection identifying the status of the connection of the VPU to the FS, (d) Implant Connection identifying the status of the connection of the implant to the FS, (e) Stimulation identifying the status of stimulation (i.e., whether or not stimulation is occurring); (f) Charge Density Limit (CDL) in mC/cm² for both the PC and the stand alone modes; and (g) Date and Time 2) Measure Impedance (103) for measuring impedance for the electrodes; 3) Measure All Waveforms (104) for measuring waveforms for the electrodes; 4) Disabled Electrodes/Impedance (in kOhms)−6×10 Electrode Grid (105) representing each of the implant electrodes. The view of the electrodes is from the perspective of the subject. The electrodes shown as “

” are designated as broken/shorted. When measuring impedance, the values will appear directly under each represented electrode. Stimulation should not occur on electrodes designated as broken; and 5) Impedance Scale (102) for impedance that ranges from 0 to 55 kOhms.

Clicking on the Measure Impedance (103) will measure impedance of the electrodes and a message box shown in FIG. 8 may be used to indicate the progress of obtaining impedance measurements. Once the impedance measurements are completed, the impedance values (in kOhms) will be displayed as shown in FIG. 9 under each represented electrode. Each of the electrodes may be color coded based on where the impedance value falls within the impedance scale from 0 to 55 kOhms of the Impedance Scale (102) of FIG. 7. The impedance values for the subject may be automatically stored in a file marked for transfer on the FS laptop (10).

To measure waveforms, Clicking on “Measure All Waveforms” (104) button of FIG. 7 will measure waveforms of the electrodes and a message box shown in FIG. 10 may be used to indicate the progress of the waveform measurements. Once the measurements are complete, the waveform information may be stored in a file marked for transfer on the FS laptop (10). The waveforms for each of the electrodes can be viewed from the Waveform Viewer (107) tab shown in FIG. 7.

The Waveform Viewer (107) shown in FIG. 11 is a utility that may be used to measure and view the waveform of a selected electrode. From the list of the electrodes at the bottom of the screen (displayed in a 6×10 configuration (110) with their Cartesian coordinates), a specific electrode for which to measure the waveform may be selected. Upon selection of the electrode, the VPU (20) will record the waveform and the information will be sent to the FS so that the waveform data may be presented on the screen as shown in FIG. 12 in which, for example, the waveform of F10 is measured during stimulation. By right clicking on the mouse, it may be possible to zoom in and zoom out on the displayed waveform. The waveform may be saved by clicking on the Save Waveform button (111).

The Psychophysical Test System (PTS) is part of the Retinal Stimulation System (1) as it is intended to be used to facilitate fitting a subject by characterizing the subject's perceptual responses to electrical stimuli. The results from the psychophysical experiments may be accumulated, evaluated and used to determine the stimulation parameters of the VPU (20) during video stimulation.

Additionally, PTS may provide a framework for researchers and investigators to develop customized psychophysical experiments. PTS may comprise four ways to execute psychophysical experiments: 1) Threshold with Method of Adjustment, 2) Brightness Matching, 3) Direct Stimulation, and 4) Clinician-Designed Research Experiments. Each being described in detail below.

The Threshold with Method of Adjustment may be used to determine the stimulation current threshold for an individual electrode (i.e. the stimulation level at which a percept is first seen). The user interface allows the experimenter to (1) configure the experiment, including which electrodes to test, how many trials are tested per electrode and other stimulation timing parameters, (2) preview the stimulation waveform, (3) capture subject responses, and (4) view experiment results on the screen as the test progresses, and save the results.

In this test, the subject will be stimulated on one of the test electrodes. The subject may use the Patient Input Device (Jog Dial) (55) shown in FIG. 3 to increase or decrease the stimulation current amplitude on the selected electrode after each stimulation. To indicate the threshold, the subject may press down the Jog Dial (55) when perception occurs. The Results screen displays the threshold and another test electrode is tested. This continues until all selected electrodes are tested for a number of trials, as configured by the experimenter. All stimulation parameters may be recorded by the Fitting System in the psychophysics log.

The Brightness matching may be used to determine the relationship between electrode stimulation current and the perceived brightness. These data are analyzed to determine the current amplitudes required to elicit the same perceived brightness for each electrode in the array. The user interface allows the experimenter to (1) configure the experiment, including which electrodes to test, which electrode and what amplitude to use as a reference, how long to wait between the two stimuli, the number of trials per test electrode, and other stimulation timing parameters, (2) preview the stimulation waveform, and (3) view the stimulation and subject response as the test progresses.

In each trial, the subject may be stimulated with two stimuli, one on the test electrode and one on the reference electrode (The order of the stimuli is random). The subject may use the keys on the Patient Input Device (Tablet) (50) shown in FIG. 3 to signal which of the two temporal intervals contains the brighter stimulus. This process will continue until each of the selected electrodes has been tested for a number of trials, as configured by the experimenter.

Using Direct Stimulation, an experimenter is able to (1) design a stimulation wave form on a single or multiple electrodes and (2) conduct manual testing on a single or multiple electrodes. During the use of Direct Stimulation, no subject response is automatically logged in FS.

The PTS System, may, for example, also have MATLAB software installed to allow clinicians to develop their own customized psychophysical experiments for research purposes. These experiments may be used for research purposes.

The following provides instructions for running the Threshold Method of Adjustment, Brightness Matching, and Direct Stimulation Psychophysical experiments. By selecting the Psychophysics tab (106) of FIG. 7, FS will attempt to connect with PTS. “WAITING FOR CONNECTION,” as shown in FIG. 13 may be displayed indicating that FS is waiting for a connection with PTS.

A window (129) shown in FIG. 14 will appear on the PTS laptop (30) of FIG. 3 requesting Username (130), Password (131), and Subject ID (132). ‘OK’ (134) may be used to proceed to the Psychophysical Test System Main Menu and ‘Cancel’ (135) may be used to quit the session.

If ‘OK’ (134) is selected, the PTS Server screen on the FS Laptop (10) of FIG. 3 should display “CONNECTED”, as shown in FIG. 15, to indicate that a connection has been successfully established between the FS and PTS.

The Psychophysical Test System (PTS) main screen (139), shown in FIG. 16, has three options 1) ‘Threshold with method of adjustment’ (140), 2) ‘Direct Stimulation’ (142), and 3) ‘Quit’ (143).

Next, a way of conducting a threshold measurement using the method of adjustment will be described.

A ‘Threshold with Method of Adjustment’ screen (144) shown in FIG. 17 appears when the ‘Threshold Method of Adjustment’ button (140) is selected from the ‘PTS Main Menu’ screen (139) of FIG. 16. The ‘Threshold with Method of Adjustment’ screen (144) may contain:

1) a ‘Parameters’ panel (150) for experiment parameters that require configuration in order to execute an experiment,

2) a ‘Stimulation’ panel (151) for stimulation parameters that require configuration in order to execute an experiment;

3) a ‘Message’ panel (152) for messages that may require the experimenter's attention during the testing. There are two types of messages than can be displayed during a test session: (a) Unknown key pressed—This message is generated if the subject presses an unknown key during the test, and (b) Maximum or minimum amplitude reached—This message is generated if the maximum/minimum current amplitude is reached (as allowed by the maximum charge per phase safety limit) and the subject continues to turn the jog dial to increase/decrease the amplitude. A loud sound may also be emitted to alert the experimenter and the subject;

4) a ‘Result’ panel (153) for displaying electrodes that are currently under test, stimulation amplitude and previously recorded thresholds in this experiment;

5) a ‘Run’ button (154) to start to run the threshold with method of adjustment experiment. The program will check the parameters entered against the safety limits and the experimenter will have a chance to correct them if so;

6) a ‘Cancel’ button (155) to cancel the current running experiment; and

7) an ‘Invalidate Last Trial’ button (156) to invalidate the last found threshold if the subject pushed the jog dial by accident.

Configuration parameters may be entered for the experiment as described below, with continued reference to FIG. 17.

The names of electrode(s) whose thresholds are to be measured during testing may be entered in the ‘Electrode Name’ window (160) of the ‘Parameters’ panel (150). One may select all the electrodes by selecting the ‘All Available Electrodes’ option (162) of the ‘Parameters’ panel (150) or one may select only certain electrodes from the grid shown in a Table 1 below.

TABLE 1 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10

The starting stimulation amplitude(s) (μA) for each of the test electrodes may be entered in the ‘Start Amplitude’ window (161) of the ‘Parameters’ panel (150). A ‘Unified Start Amplitude’ option (163) of the ‘Parameters’ panel (150) may be checked to enter a single Start Amplitude for all electrodes.

The number of threshold measurements to be made on each electrode may be entered in the ‘Trials per electrode’ window (164) of the ‘Parameters’ panel (150).

The pulse Width (ms) may be entered into windows (165 a-d) of the ‘Stimulation’ panel (151). The desired time between start of the effective stimulation window and initiation of the first phase may be entered into a Tw window (165 a). The duration of the first phase may be entered into a Tx window (165 b). The desired time between the end of the first phase and the beginning of the second phase may be entered into a Ty window (165 c). The duration of the second phase may be entered into a Tz window (165 d). FIG. 18 depicts a waveform of the numbers entered into windows (165 a-d).

The frequency of how many times per second the waveform shown in FIG. 18 will be repeated may be entered into a ‘Frequency’ window (166) of the ‘Stimulation’ panel (151) of FIG. 17. The desired length of each stimulation in milliseconds (i.e. the length of stimulation at a given test amplitude) may be entered into a ‘Duration’ window (167) of the ‘Stimulation’ panel (151). Selection of whether the first phase is negative (cathodic) or positive (anodic) current may be performed using ‘First’ window (168) of the ‘Stimulation’ panel (151). A ‘Show waveform’ button (169) may be used to produce a graph that plots the waveform of the complete stimulus for a trial. A ‘Sound w/o stimulation’ button (170) may be used to generate a sound (the same as the one heard when stimulation is delivered) without actually delivering stimulation. Once all configuration parameters have been entered, the experimenter has the option to press the ‘Show Waveform’ button (169) prior to initiating the experiment to check the parameters to produce a graph that plots the waveform of the complete stimulus for a trial as shown in FIG. 19. A ‘Run’ button (154) may be used to proceed with the experiment.

After the ‘Run’ button (154) or ‘Show Waveform’ button (169) are activated, the parameters may be checked against safety requirements of the system. If any of the parameters violates safety limits, a message box may be displayed and the experimenter will need to change the configuration parameters. Common errors may include broken/shorted electrodes and start amplitudes which exceed maximum charge per phase limit. For example, if any of the chosen electrodes are already deemed broken/shorted, a popup message shown in FIG. 20 may be displayed on the screen. If no safety violations are found, a popup message shown in FIG. 21 will appear. If the requested pulse amplitude cannot be generated by the VPU (20) of FIG. 3, the closest value will automatically be used. The value will appear in the results section discussed below.

After each stimulus presentation, the subject may turn the jog dial (55) of FIG. 3 to the right to increase stimulation amplitude, or may turn the jog dial (55) to the left to decrease stimulation amplitude. The subject may increase or decrease the stimulation level until he/she has determined their threshold (i.e. the minimum stimulation amplitude for seeing the stimulation.) The subject may signal the threshold for that electrode by pressing down on the Jog Dial (55). If multiple electrodes are tested, the electrodes may be tested in random order.

During a Threshold with Method of Adjustment experiment, the PTS Server screen on the FS Laptop (10) may display ‘IN TRIAL: Threshold with method of adjustment’ is shown in FIG. 22. At any time during the experiment, the experimenter can click the ‘Sound w/o stimulation’ button (170) of FIG. 17 or 19 to generate a stimulation sound without actually delivering stimulation to the subject.

If for any reason, the experimenter determines that the last threshold measurement is invalid (e.g. the subject pressed down the jog dial (55) accidentally), the experimenter can click on the ‘Invalidate Last Trial’ button (156) of FIG. 17 or 19 to invalidate that trial. This may be set up to invalidate only the results of the last trial, not the whole experiment. The ‘Result’ panel (153) of FIG. 17 or 19 will show the trial as “Invalid” and the trial will be repeated in a random order with the remaining electrodes.

The experiment ends once all of the trials have been completed. In the ‘Result’ panel (153), the total number of trials and number of finished trials may be displayed throughout the experiment. The ‘Cancel’ button (155) may be used to stop an experiment prior to the completion of all trials.

At the end of the experiment, the “Threshold with method of adjustment—results” screen shown in FIG. 23 may appear and the experimenter may have the option of saving the results to a hard drive.

After saving the results (172) and/or canceling (173), a ‘Comment’ screen (175) shown in FIG. 24 may be used for comments. The ‘Comment’ screen (175) contains two buttons, ‘Repeat Last Experiment’ (176) and ‘Go Back to Main Menu’ (177). If ‘Repeat Last Experiment’ (176) is chosen, the experimenter will be returned to the main Threshold Test—‘Method of Adjustment’ screen (144) of FIG. 17 with the Parameters from the last experiment and the experimenter can modify and repeat the experiment. If ‘Go Back to Main Menu’ (177), is chosen, the experimenter will be returned to the main PTS menu (139) of FIG. 16.

A ‘Direct Stimulation’ screen (210) shown in FIG. 25 appears when the ‘Direct Stimulation’ button (142) of FIG. 16 is selected from the PTS Main Menu Screen (139) of FIG. 16. The ‘Direct Stimulation’ screen (210) may also contain 1) ‘Parameters’ panel (211), 2) ‘Stimulation’ panel (212), 3) ‘Message’ panel (213), and 4) ‘Result’ panel (214). During a Direct Stimulation experiment, the PTS Server screen on the FS Laptop (10) may display “EXPERIMENT: Direct Stimulation” as shown in FIG. 27.

Configuration parameters may be entered for the experiment as described below with reference to FIG. 25.

Starting stimulation amplitude(s) (μA) for each of the selected electrodes may be entered into a ‘Start Amplitude’ window (220) of the ‘Parameters’ panel (211). ‘Rastering’ (or timing) (221) may be used to stagger the start times that electrodes are stimulated. When this option is not selected, all electrodes are stimulated simultaneously.

The number of times a stimulation will be repeated may be entered into a ‘Repeat Stimulation’ window (222) of the ‘Parameters’ panel (211). The time delay between successive repetitions may be approximately 0.5 seconds.

The electrodes to be stimulated can be selected from the ‘Electrodes’ windows (223) of the ‘Parameters’ panel (211). The electrodes may be individually selected by clicking individual boxes. Complete rows of electrodes may be selected or de-selected by clicking on the alphabetic button (A-F). Complete columns of electrodes may be selected or de-selected by clicking on the numeric button (01-10). All electrodes can be selected by using the ‘Set/Clear’ button (224). The inverse of the selected electrodes can be achieved by clicking on the ‘Inverse’ button (225).

A Pulse Width (ms) may be entered into windows (226 a-d) of the ‘Stimulation’ panel (212). A desired time between start of the effective stimulation window and initiation of the first phase may be entered into a Tw window (226 a). The duration of the first phase may be entered into a Tx window (226 b). The desired time between the end of the first phase and the beginning of the second phase may be entered into a Ty window (226 c). Duration of the second phase may be entered into a Tz window (226 d). FIG. 18 depicts a possible waveform of the numbers entered into windows (226 a-d).

The frequency of how many times per second the waveform shown in FIG. 18 will be repeated may be entered into a ‘Frequency’ window (228) of the ‘Stimulation’ panel (212). A desired length of each stimulation in milliseconds (i.e. the length of stimulation at a given test amplitude) may be entered into a ‘Duration’ window (229) of the ‘Stimulation’ panel (212). Selection of whether the first phase is a negative (cathodic) current phase or a positive (anodic) current phase may be performed using the first window (227) of the ‘Stimulation’ panel (212). The ‘Show Waveform’ button (230) may be used to produce a graph that plots the waveform of the complete stimulus for a trial. The ‘Run’ button (215) may be used to proceed with the experiment.

After the ‘Run’ button (215) or ‘Show Waveform’ button (230) are activated, the parameters may be checked against safety requirements of the system. If any of the parameters violates safety limits, a message box will be displayed and the experimenter will need to change the configuration parameters. Common errors may include broken/shorted electrodes, start amplitudes which exceed a maximum charge per phase limit (or the maximum total instantaneous current limit). For example, if there are any broken electrodes, the popup message shown in FIG. 26 may be displayed on the screen. While the experiment is running, the ‘Result’ screen (214) of FIG. 25 will indicate that stimulation is in progress. The ‘Cancel’ button (216) of FIG. 25 may be used to cancel Stimulation. A message (not shown) may appear indicating that stimulation was stopped by request.

If stimulation has ended normally, a Comment screen (236) shown in FIG. 28 may be displayed. The Comment screen (236) contains two buttons, ‘Repeat Last Experiment’ (237) and ‘Go Back to Main Menu’ (238). If Repeat Last Experiment (237) is chosen, the experimenter will be returned to the main Direct Stimulation screen (210) with the Parameters from the last experiment and the experimenter can modify and repeat the experiment. If ‘Go Back to Main Menu’ (238), is chosen, the experimenter will be returned to the main PTS menu (139) of FIG. 16.

A Clinician-Designed Research Experiments module allows researchers to develop and execute their own custom-designed experiments for research purposes. Experimental psychophysical scripts are developed in MATLAB and are then executed within a MATLAB/PTS framework.

In the next paragraphs, FIGS. 29-53 will describe a video configuration file (VCF) editor. A video configuration file (VCF) defines how the video signal is mapped to the electrical signal for individual or groups of electrodes. In particular, the VCF controls various aspects of the video configuration, e.g., the spatial relationship between the video input and the electrodes. In other words, the VCF provides the instructions for the stimulation that each electrode will deliver based on the video stream captured by the camera located on the glasses (5) of FIG. 3.

The VCF is initially processed on the laptop computer (10) of FIG. 3. After that, the VCF is downloaded to the VPU (20) of FIG. 5 through the video module later shown in FIG. 42, thus allowing the VPU (20) to function in a stand-alone mode. A previously used VCF can also be loaded from the VPU (20) for adjustment. Once a desired VCF is loaded to the VPU, stimulation of the subject may be performed. The VCFs may be in a comma separate value (.csv) format.

Editing or creation of a VCF is performed by a module called VCF editor. In the next figures, the VCF editor will be shown and described in detail. The “Video Stimulation” function in CFS can be used to download a VCF to the VPU to allow the VPU to be used properly in stand-alone mode or to stimulate the subject in video mode.

A brief summary of what shown in some of FIGS. 29-53 will now follow. FIG. 29 shows the main screen of the VCF editor. FIG. 30 shows the controllable components of the VCF that can be specified upon creation of a VCF. These components include features such as stimulation frequency, charge density limit, pulse width, interpulse time, first phase (cathodic or anodic), current range, number timing groups (i.e. the number of non-simultaneous electrode stimulation groups), minimum video level, number of saturated electrodes, and list of minimum stimulation values for each electrode. An existing VCF can also be loaded to the VCF editor of FIG. 29, as shown in FIGS. 32, 33 and 34.

One of the editing functions of the VCF editor is that of changing the brightness map for an individual electrode or electrode groups, as shown in FIGS. 35, 36 (single electrode), and 37 (electrode group). The brightness map represents the mapping between the video brightness level and the corresponding stimulation current amplitude specified in the VCF. A further editing function is that of defining or changing the temporal stimulation pattern to which each electrode or electrode groups are assigned. This feature is described in FIG. 38 (where six electrodes are assigned to the same timing group) and 39 (where a timing group for a single electrode is changed). FIG. 39 also shows how the spatial mapping between the output of the camera and the array of electrodes can be modified. The spatial mapping represents the spatial location (coordinates) from the subject's viewpoint for each electrode as specified in the VCF. One or more electrodes can also be disabled, as shown in FIG. 40. Once created or modified, a VCF is stored in a particular folder, as shown in FIG. 41.

The video module briefly introduced in paragraph [0091] above is shown in FIG. 42. The video module allows a VCF to be loaded onto the VPU. The loading process is explained in detailed in the paragraphs that make reference to FIGS. 42, 43 and 44.

FIGS. 45-53 will deal with the software architecture of the VCF editor. FIGS. 47, 48 and 49 show high level diagrams of software classes associated with the VCF editor graphic user interface (GUI) application. FIGS. 48-51 represent sequence diagrams of auto-generation of video configuration, edit video configuration, save video configuration to file, and load video configuration from a file. FIG. 52 shows a diagram useful to understanding how distance between electrodes in the same timing group is maximized by way of an algorithm, the result of which is shown in FIG. 53.

FIGS. 29-44, briefly summarized above, will now be discussed in detail.

FIG. 29 shows a video configuration file (VCF) editor screen. A new VCF is opened by clicking on the “new” button (310). A parameter screen will be displayed with default global values as shown in FIG. 30.

As shown in FIGS. 30 and 31, the “Stimulation Frequency” (320) is the number of pulses sent to each electrode per second. Stimulation frequency can be changed by clicking the stimulation frequency pull-down menu (330). Some of the frequencies that can be supported by the VCF are: 120 Hz, 60 Hz, 40 Hz, 30 Hz, 24 Hz, 20 Hz, 15 Hz, 12 Hz, 10 Hz, 8 Hz, 6 Hz, 5 Hz, 4 Hz, 3 Hz, 2 Hz, and 1 Hz. The default stimulation frequency is 20 Hz.

Turning to FIG. 30, the “Charge Density Limit (mC/cm²)” (340) is the upper limit for the charge density that is delivered to the subject. By way of example, four ranges can be chosen from in the pull-down menu (350): 0.35, 0.5, 0.75 and 1.0 mC/cm². The default is 0.35 mC/cm².

The “Pulse Width” (360) is defined as the width of the biphasic pulse per phase. “Pulse Width” (360) can be changed by typing into field (370) the pulse width in ms. The default pulse width is 0.45 ms. The range of the pulse width can be 0-3 ms.

The “Interpulse Time” (380) is defined as the gap between the cathodic and anodic phases of the biphasic pulse. “Interpulse Time” (380) can be changed by typing into field (390) the interpulse time in ms. The default value is 0. The maximum interpulse time can be set to 6 ms−2*(pulse width). The “First Phase” (400) defines whether the first phase of the biphasic pulse is “Cathodic” or “Anodic”. “First Phase” can be changed by clicking on the “First Phase” pull-down menu (410).

The current range (420) is defined as the maximum stimulation current that can potentially be delivered to each electrode. However, the actual current range that can be delivered to each electrode is limited by the maximum charge density defined for the device and is thus related to the pulse width. For example, if the pulse width is set at 0.45 ms, the maximum current range without exceeding the charge density limit of 0.35 mC/cm² is 0-250 μA. If a pulse width of 0.11 ms is chosen, then the current range of 1000 μA is appropriate. Any amplitude value greater than the maximum safe limit (as defined by the maximum charge density) will be set to the maximum safe amplitude. “Current Range” (420) can be changed by clicking on the pull-down menu (430). According to an embodiment of this disclosure, the VCF can support, for example, current ranges of 0 to 125 μA, 250 μA, 500 μA, and 1000 μA.

The “Number of Timing Groups” (440) is defined as the number of interleaved (non-simultaneous) electrode stimulation groups in the VCF. It can vary, for example, from 1 to 60 groups.

The “Minimum Video Level” (450) defines the limit for the digital video level. When the video level is below that value there will be no stimulation applied to the electrodes. The range of the “Minimum Video Level” can be 0-31.

The “Num saturated electrodes” parameter (460) defines the number of electrodes that will reach the maximum allowable current level limited by the “charge density limit” for that VCF. The number of saturated electrodes will increase if the slope of the brightness mapping curve is increased. By default, the slope of the brightness curve is varied (e.g., uniformly) for all the electrodes to meet this criterion.

The “Imin File” (470) is a list of minimum stimulation values for each electrode that are derived from threshold testing. The threshold values define the level of stimulation current that is applied for each electrode at the minimum video level discussed with reference to the “Minimum Video Level” (450) above. This file should be generated prior to creating a new VCF and can then be loaded into the VCF editor by using the Browse button (480) and selecting the appropriate Imin file. In this file, also the disabled electrodes can be indicated.

Based on the above, once the “Generate New VCF” button (490) is clicked, a new VCF based on the chosen settings is generated.

FIG. 32 displays the new VCF created with the default global parameters and an arbitrary Imin file. See the “Information” section (500) of FIG. 32, which shows the values for the global parameters. The VCF created using the default global values has 18 timing groups (0-17). The ‘Comments’ field (510) allows the user to record comments for that particular VCF which will be displayed each time the VCF is opened with the editor. The ‘Edit’ section (520) allows the user to modify the VCF and is discussed in detail below. To load an existing VCF to the Editor, the “Load” button (530) in the main editor screen can be clicked.

A new screen (535) will be displayed after the “Load” button (530) is clicked, as shown in FIG. 33. An existing VCF can be selected by selecting the appropriate directory and file name and click on the ‘Open’ button (540) of FIG. 33. The VCF will be loaded to the editor and the file name is displayed in the editor screen, as shown by circle (550) in FIG. 34.

As also shown in FIG. 35, the brightness map (560) can be changed for an individual electrode or electrode groups. The brightness map is defined as the mapping between the video brightness level and the corresponding stimulation current amplitude. The brightness map (560) for each individual electrode is displayed when the electrode is selected. To select an individual electrode, the user should click on the center of the electrode circle (570). FIG. 35 shows the brightness map for electrode A2, see also (580). In this figure, the brightness range of 0 to 31 units is mapped to the stimulation current range of 0 to 233 μAmps.

The brightness map formula can be defined as:

${{Stimulation}\mspace{14mu} {Amplitude}} = \left\{ \begin{matrix} {I_{\min}\left( {1 + \frac{\left( {k - 1} \right)*\begin{pmatrix} {{Brightness} -} \\ V_{\min} \end{pmatrix}}{V_{\max} - V_{\min}}} \right)} & {{if}\mspace{14mu} < I_{\max}} \\ I_{\max} & {{if}\mspace{14mu} > I_{\max}} \end{matrix} \right.$

Where: V^(min) is the minimal video level (0-31). The default value for V^(min) is 10; V^(max) is the maximum video level set at 31; I^(min) is the stimulation current corresponding to V^(min) for each electrode; and K is the dynamic range factor; the ratio between the maximum and minimum current for each electrode (I^(max)/I^(min)). I^(max) is defined by the charge density limit (CDL) and the current range. As shown above, the stimulation current amplitude will never exceed Imax to ensure safety.

To change the brightness map for an individual electrode, the electrode should be selected. Once the electrode is selected, the slide bar (590) should be moved to adjust the dynamic range factor. The “Apply” button (600) should then be clicked. The new brightness map will then be displayed as shown in FIG. 36.

To set the same brightness map for a group of electrodes, a group of electrodes should be selected by left-clicking the mouse and dragging the mouse to highlight the group as shown by reference numeral (605) in FIG. 37. Alternatively, the electrodes can be selected one at a time while pressing down the ‘Ctrl’ key on the keyboard. If the electrodes selected have different brightness maps, the different maps will be displayed as shown in FIG. 37. The dynamic factor for all the selected electrodes can then be varied by moving the slide-bar (590) just as for an individual electrode. Also in this case, when the desired dynamic factor is set, the ‘Apply’ button (600) should be pressed.

The timing group can also be changed. The term ‘Timing Group’ defines the temporal (time domain) stimulation pattern to which each electrode is assigned. If multiple electrodes are assigned to the same timing group, it means that they will be stimulated simultaneously. Different timing groups are stimulated non-simultaneously or interleaved. As indicated in sections (610), (620) and (630) of FIG. 38, the VCF Editor maximizes the distance between electrodes within the same timing group.

The maximum number of timing groups can be calculated as follows:

${{Maximum}\mspace{14mu} {Number}\mspace{14mu} {of}\mspace{14mu} {Timing}\mspace{14mu} {Groups}} = {{Min}\left( {\frac{120 \times 3}{Stimulation\_ Frequency},60} \right)}$

For example, if the stimulation frequency is 20 Hz, the maximum timing groups will be 18. In the embodiment shown in FIG. 38, the maximum number of timing groups for the system does not exceed 60. The above calculation applies to the stimulation pulse width up to 1 ms. The timing group assigned to each electrode can be designated by a color code and a numerical value under the electrode, as shown in FIG. 38, where the six chosen electrodes A01, B08, C05, D02, E09 and F06 are all represented with the same color, e.g., blue. To select all the electrodes in the same timing group, one of the electrodes in that group can be double clicked, as shown in FIG. 38.

With reference to FIG. 39, to change the timing group for an individual electrode: 1) The electrode (e.g., electrode A1 shown as (640)) should be selected by clicking on the visual representation of such electrode; 2) The pull-down menu (650) for the ‘Timing Group’ should be opened and the desired timing group (660) selected; 3) The “Apply” button should be clicked.

The pull-down menu (650) shows the combined maximum stimulation current for all the electrodes contained within each group of electrodes. The maximum level of simulation current for all the groups is reported as the Maximum Instantaneous Current (see MIC (370) in FIG. 39) above the pull-down menu.

To change the timing group for multiple electrodes: 1) The electrodes should be selected by left-clicking the mouse and dragging the mouse to highlight the group. Alternatively, the electrodes can be selected while pressing down the “ctrl” key on the keyboard. 2) The pull-down menu for the ‘Timing Group’ should be opened and the desired timing group selected; 3) The “Apply” button should be clicked.

The spatial mapping between the camera output, which has 20×12 pixels and the 10×6 array of electrodes can be modified using the “X Coordinate” and “Y Coordinate” variables in the Edit section, see, e.g. elements (680) and (690) in FIG. 39. Once the X and/or Y Coordinate values are modified, the “Apply” button should be clicked. The X Coordinate can range from 0 to 19 and the Y Coordinate from 0 to 11.

Electrodes can also be disabled, as shown in FIG. 40. To disable an electrode, the electrode (e.g., A05) should be selected (700), (710) and the “Disable electrode” button (420) should be clicked. An ‘X’ will be displayed in the center of the electrode, as shown in the figure, see reference numeral (700). The disabled electrode's brightness map (730) will contain all zeros for the current amplitude. With reference to the embodiment of FIG. 40, should be noted that once an electrode is disabled in the VCF editor, it can be enabled by changing K. However, if Imin is set to 0, then it cannot be re-enabled using the VCF editor. A new VCF would need to be generated with the desired electrode active.

The VCF can be saved by clicking on the “Save” button, see, e.g., button (740) in FIG. 40. As shown in FIG. 41, video configuration files are stored in a folder named after the particular Subject ID in the “settings” directory in a Video Settings USB Drive. For example, if the Subject ID is “00-001”, the folder containing the video configuration files for that particular subject should be named “00-001”. The button “open” (750) should be clicked to save the VCF in the specified directory of the Video Settings USB drive as discussed above.

Now the VCF is created and can be loaded onto the VPU using the following procedure:

1—If not already done, the Clinician Fitting System (CFS) or Fitting System (FS) shown in FIG. 3 should be set up, and Argus II Clinician Fitting System application as previously described should be started. The user should log in to the Clinician Fitting System as described in FIG. 5.

2—The tab “Video”, shown in FIGS. 7, 9, 11, 12, 13, 15, 22 and 27, should be clicked. The Video screen, shown in FIG. 42, comprises three sub-sections: A) Stimulation (760); B) Video Display (770); C) Video Configuration (780). Within the “Stimulation” section (760) is a button (790) to start stimulation of the subject with the video configuration file downloaded to the VPU. The “Video Display” section (770) has two images. The image (800) on the left represents the camera output, which has 20×12 pixels. The image (810) on the right has 10×6 pixels and represents the filtered image sent to the electrode array. The “Video Configuration” section (780) has the button “Load Configuration to VPU” (520). Button (820) should be pressed to load the desired video configuration file to the VPU.

3—Verify that the indicator boxes (830), (840) to the right of “VPU” and “Implant” are illuminated green. If “VPU” indicator box (830) is yellow, verify that the VPU is properly connected. If the “Implant” indicator box (840) is yellow and/or the VPU is sounding an audible alert indicating that linkage with the implant is not established, the subject's RF/coil board assembly on the glasses should be adjusted to establish link.

4—Determine if the file described in “Video Configuration” (780) is the one desired for stimulating the subject. If so, proceed to step 9, if not, proceed to step 5.

5—To load a different video configuration file to the VPU, a USB thumb drive can be connected to an empty port on the USB hub.

6—Click on “Load configuration to the VPU” button (820). A “Load” screen, shown in FIG. 43, will appear with a listing of video configuration files (850) contained in this subject's folder within the “settings” folder (860) on the thumb drive. Clicking on a configuration file in the list (850) will display a description of that selected file in the description box (870) provided that the description was included as part of the video configuration file.

7—When the desired video configuration is located, click on “Load Selection” button (880) to download the selected VCF to the VPU. The file name, along with the load date and time will be displayed in the “Video configuration” section (780) on the Video Screen shown in FIG. 42. Preferably, the VPU will not download any file that does not meet the necessary safety requirements for stimulation. Moreover, in the embodiment shown in the figures, only a single video configuration file can reside at any one time on the VPU.

8—If the incorrect video configuration file is downloaded, repeat steps 5 through 7.

9—Once the desired video configuration file is loaded, begin stimulation when the subject is ready by clicking the “Start Simulation” button (790) of FIG. 42. The background of the 10×6 image on the right will change from a first color to a second color (e.g., blue to green) when the stimulation is on, as shown in FIG. 44. It should be noted that if the subject looks at a very bright light (e.g. the sun or a light bulb) while operating in Video mode, stimulation may temporarily be turned off for the subject's protection.

10—To stop stimulation, click the “Stop Simulation” bar (890) shown in FIG. 44 or simply close out the window using the X in the upper right hand corner of the display, as typical with Windows® applications and windows.

11—When video configuration files are being downloaded to the VPU (20) of FIG. 3, the “Video Settings” thumb drive can be safely removed from the hub.

12—To proceed to a different module (Diagnostics, Waveform Viewer, Psychophysics, Options) within Subject Testing, the appropriate tab should be clicked.

The above text and figures have described in detail the purpose and functioning of the VCF editor in accordance with the present disclosure. According to an embodiment of the present disclosure, the VCF editor is a stand-alone program that can operate on any computer with Java Runtime Environment. Some of the features supported by the VCF editor include: up to 60 timing groups with the flexibility to assign any electrode to any timing groups; edit or modify brightness mapping for individual or groups of electrodes; define the stimulation frequency, charge density limit, pulse width, current range, number of timing groups and other global parameters; modify the spatial mapping between the camera output and the electrodes; and disabling electrodes.

In the next paragraphs, the software architecture of the VCF editor will be described in detail.

The VCF editor is designed to be part of the automatic fitting process. The assumption is that a subject has gone through some psychophysics tests, designed to characterize their perception to electrical stimulation. A collection of parameters are extracted from the psychophysics experiment results, serving as the input to the VCF editor.

The VCF Editor is a graphic user interface (GUI) application created using a “Model-View-Controller” (MVC) architectural pattern. The model class contains all the information necessary to specify a video configuration object, as well as a collection of rules to manipulate the information, such as algorithms and methods to create, load, change, and save the video configuration object.

FIG. 45 shows a high level diagram showing the major classes. The diagram demonstrates that the main VcfEditor UI class (900) (where UI means user interface) has dependencies on the model (EditableVideoConfiguration (910)) and other display services. However, the model (910) does not have dependencies on the UI (900). This is to allow the UI (900) to be easily modified without affecting the rest of the system. EditableVideoConfiguration class (910) depends on two other classes: the EditableBrightnessMap (920) and the EditableTimingMap (930). The main UI class VcfEditor (900) uses three UI classes: the ImplantVcfDisplay class (940) is used to display the implant diagram; BrightnessMapChart (950) uses a JFreeChart object to display the brightness map plot; and SpatialMapChart (960) is used to display the spatial map. It should be noted that the timing group assignment is displayed on the implant diagram with an ImplantVcfDisplay class as well. The detailed stimulation waveforms of each timing group are not shown.

With reference to the EditableVideoConfiguration class (910), such class is the model of the Vcf Editor application. It contains three major types of information: (1) Brightness map; (2) Spatial map; and (3) Timing information. The information is organized so that it can be easily generated, accessed, loaded from and saved to files.

In addition to the classes mentioned above, the VCF Editor shares some classes with the Argus II CFS application. The table shown in FIG. 46 is a short summary of these classes.

The brightness map information is stored in the EditableBrightnessMap object (920) already shown in FIG. 15. This object wraps around the BrightnessMap object and provides access to the raw map using higher level concept such as the “dynamic factor K” (970) and “minimum stimulation Imin” (980), as shown in FIG. 47. The spatial map (980) is stored in a hash map, mapping from the electrode label to its corresponding row-column position. Further, the timing information is stored in the EditableTimingMap object (930) previously discussed with reference to FIG. 45. Object (930) contains the stimulation pattern of each electrode. Electrodes are stimulated by timing groups. Object (930) contains information such as anodicProfiles (990), cathodicProfiles (1000), and dataFrames (1010) which map from the timing group number to the corresponding timing properties. The member variable groupNumbers (1020) corresponds each electrode to a timing group.

The ImplantVcfDisplay class (940) of FIG. 45 is the UI class which is responsible for displaying an implant diagram and accepting user selection inputs. It is derived from the CFS application class ImplantGeometryDisplay.

Class (940) uses the super class methods to draw the implant diagram. In addition, this class will assign a unique color to each of the timing groups by overwriting the method getElectrodeColor( ). The numerical timing group numbers are also displayed as annotations. The user can select electrodes by single clicking, clicking-and-dragging, or double clicking. ImplantVcfDisplay extends the super class by adding a listener VcfMouseEventListener to the mouse events. VcfMouseEventListener listens to mouseClicked, mouseDragged, mousePressed, and mouseReleased events. An instance of ImplantVcfDisplay object is included in the VcfEditor class.

FIGS. 48-51 represent sequence diagrams of auto-generation of video configuration, edit video configuration, save video configuration to file, and load video configuration from a file.

FIG. 48 shows auto-generation of a video configuration. After the application starts, the user (e.g., a field clinical engineer (1030)) can ask the VcfEditor (1040) to automatically generate a video configuration based on parameters such as stimulation frequency, pulse width, etc. In this operation, the UI class VcfEditor calls the model class and passes in the parameters. After the model class finishes updating itself based on the parameters, it informs the UI class to update the display.

FIG. 49 shows editing of the video configuration. The user can select (1050) one or multiple electrodes and change the brightness map (1060), spatial map (1070), or assign it/them to a different timing group (1080). It should be noted that in this embodiment the user is not allowed to modify stimulation frequency, pulse width and stimulation polarity. Instead, a new video configuration should be generated using the auto-generation process of FIG. 48.

FIG. 50 shows an operation of saving the video configuration to file. This is done by creating a VideoConfiguration object (1090) and passing it to a VideoSettingCsvReaderWriter object (1100), which converts and saves the information in .csv format.

FIG. 51 shows an operation of loading a video configuration from an existing file. This is done by creating a VideoSettingCsvReaderWriter object (1100) similarly to what done in the previous operation, and parsing the read VideoConfiguration object (1090) into an EditableVideoConfiguration object (910). During parsing, since the actual timing group numbers are not present in the VideoConfiguration object (1090), they should be referred from the corresponding profile timing and data frame information. When loading the VideoConfiguration (1090), EditableVideoConfiguration (910) will sort all timing group timing information based on (1) the cathodic profile number; and (2) the data frame count. The underlying assumptions are (a) profile numbers are sorted in time, i.e. profile 1 always comes before profile 3 within a data frame; and (b) profiles are always used in pairs, i.e. profile 1 and 2 always are used together.

The auto-generation of the VCF, already shown in FIG. 48, will now be discussed in more detail.

Based on the input from the psychophysics group, the goal of the automatic timing group assignment algorithm is to (1) maximize total number of timing groups used in the video session; and (2) separate the electrodes which are in the same timing group as far as possible in space, i.e. maximize the spatial distances within a timing group. This will help in minimizing the total amount of power used by the implant in any instance.

(1) Maximization of the Total Number of Timing Groups

The total number of timing groups is limited by (1) stimulation frequency; and (2) stimulation pulse width. The stimulation pulse width determines the number of pulses that can be fitted within a data frame (about 6 ms). The stimulation frequency, on the other hand, determines the number of data frames per stimulation frame. The stimulation frequency can only be 120/p Hz, where p is an integer, denoting the number of data frames per stimulation frame. Thus, given a stimulation frequency f, p can be calculated as a ceiling (120/f).

When generating the timing groups, the VcfEditor first maximizes the number of pulses per data frame. Afterwards, it generates a timing table based on the stimulation frequency. The timing table is a map from a timing group number to a pair of profile timings and a data frame number. Thus, each timing group is associated with a pair of pulse profiles and a data frame number.

(2) Maximization of the Spatial Distances within a Timing Group

Given the total number of timing groups N, the VcfEditor object (900) will automatically assign each electrode to a timing group, based on maximization of the spatial distances within a timing group.

According to one of the embodiments of the present disclosure, the VcfEditor can choose not to optimize the assignment through a rigorous mathematical optimization method. A first reason for following such approach is that the target function is not clear. For example, one can argue the goal is to maximize the mean distances between each pair of electrodes that are in the same timing group; or to maximize the minimal distance between any pair of electrodes in the same timing group; etc. A second reason for doing so is that the amount of calculation may be excessive to be carried out on-the-fly within VcfEditor.

VcfEditor aims to maximize the minimal distance between any electrodes that are in the same timing group. VcfEditor assumes that (1) all timing groups 1 . . . N will be used equally; (2) the timing assignment on a row can be achieved by shifting assignments on the previous row by X columns; (3) all electrodes are enabled. Based on these constraints, the goal of optimization is to find X given N.

The diagram shown in FIG. 52 summarizes the arrangement of the pattern. Electrodes represented in grey are in the same timing group. Pitch distances are denoted by “p” (horizontal pitch) and “q” (vertical pitch). Thus,

d1√{square root over ((p·X)² +q ²)}

d2=Y·q

To ensure that electrodes in the same timing group are distributed evenly in space, d1 and d2 should be (roughly) equal to each other. On the other hand, after shifting X columns per row, for a total of Y rows, since one expects to repeat the pattern in the first row, it can be concluded that:

X(columnShifted/row)*Y(rows/repeat)=N(columnShifted/repeat)

Using the above two equations, X can be calculated as:

$X = \sqrt{\frac{{- q^{2}} + \sqrt{q^{4} + {4\; p^{2}N^{2}q^{2}}}}{2\; p^{2}}}$

The above calculation also assumes the array is infinitely large on both row and column directions. In reality, however, if there are many timing groups, the algorithm needs to make sure all groups are used before it reaches the last row. Therefore:

$\begin{matrix} {X = \begin{matrix} {\sqrt{\frac{{- q^{2}} + \sqrt{q^{4} + {4\; p^{2}N^{2}q^{2}}}}{2\; p^{2}}};} & {\; {{{if}\mspace{14mu} N} < M}} \end{matrix}} \\ {= \begin{matrix} {10;} & {{{if}\mspace{14mu} N}>=M} \end{matrix}} \end{matrix}$

The threshold M currently chosen through trial-and-error is 36. Assuming three pulses can be fit within one data frame, this essentially means X=10 when stimulation frequency is less than 10 Hz.

On the basis of the above, the algorithm used by the VCF Editor to assign the timing group can be described as follows:

(1) Calculate the column shifting value X according to the above equation (2) Fill the first row with a pattern 1 . . . N, 1 . . . N (repeat if needed) (3) Shift the above pattern X times to the left and fill the next row (4) Repeat step (3) until all electrodes are assigned to a group

FIG. 53 shows an exemplary result of the above algorithm. In this example, N=6, and the calculated X is 3. It should be noted that the pattern on the second row is simply the pattern on the first row shifted 3 electrodes to the left. In addition, the horizontal pitch is p=0.575 and the vertical pitch is q=0.725.

Generation of the brightness map will now be discussed. The brightness map of an electrode can be defined as:

${Amplitude} = \left\{ \begin{matrix} {{{Im}\mspace{14mu} {in}*\left( {1 + {\left( {K - 1} \right)*\frac{{Brightness} - V_{\min}}{V_{\max} - V_{\min}}}} \right)},} & {{{{if}\mspace{14mu} {Brightness}}>=V_{\min}}\mspace{11mu}} \\ {0,} & {{{if}\mspace{14mu} {Brightness}} < V_{\min}} \end{matrix} \right.$

in which Vmin is the minimal brightness level (0-31), Imin is the minimal stimulation current for each of the electrodes, and K is the dynamic factor.

If the amplitude value is greater than the maximum safe limit Imax, such value is set to Imax. Imax represents the maximum stimulation amplitude for each electrode. This amplitude is determined by the charge density limit (CDL) and the stimulation current range specified. If the Imin is greater than Imax, Imin is set to 0, if the difference between Imin and Imax is less than 3 digital settings, the electrode is considered “disabled” and the brightness map shall be set to 0. The generated amplitude is compared to Imax, which is determined by the combination of both the maximum stimulation under the current range, and the charge density limit (CDL). Basically, Imax is used as the stimulation level if the above amplitude exceeds it.

When calculating the digital amplitude using the above formula, the following method can be used in order to minimize digitization errors:

(1) convert Imin from μA to the closest digital units Imin_digital. And then convert the Imin_digital to Imin_star with a flooring operation. This way, Imin_star will always be accurately represented using the discrete stimulation settings. (2) calculate the stimulation amplitude “Amplitude” in μA; (3) convert the above “amplitude” from μA to digital units (amplitude_digital) using a rounding method; (4) compare “amplitude_digital” with Imax (in digital units) and pick the minimum.

When automatically generating a brightness map, the default dynamic factor K is calculated from the number of electrodes whose brightness map will saturate at Imax. It is known that for a non-disabled electrode, if the dynamic factor K increases, the slope of the brightness map will increase. Applicants enumerate through all possible dynamic factor K's and use the minimum one which leads to the number of saturated electrodes requested.

Accordingly, what has been shown is a VCF editor for visual prosthesis fitting and related method. While the VCF editor and method have been described by means of specific embodiments and applications thereof, it is understood that numerous modifications and variations could be made thereto by those skilled in the art without departing from the spirit and scope of the disclosure. It is therefore to be understood that within the scope of the claims, the disclosure may be practiced otherwise than as specifically described herein. 

1. A computer-operated system comprising a computer with a display component, the display component having a graphical user interface providing for control of a video configuration file, the computer comprising: a video configuration file editor, the video configuration file downloadable to or from a video processing unit of a fitting system for a visual prosthesis having a plurality of electrodes, the video configuration file defining spatial mapping of a video signal captured from a camera of the visual prosthesis to an electrical signal for one or more electrodes of the plurality of electrodes.
 2. The computer-operated system of claim 1, wherein the video configuration file editor comprises: means for controlling a brightness map for an individual electrode or electrode groups: and means for controlling a temporal stimulation pattern to which an individual electrode or electrode groups are assigned; and means for controlling the spatial mapping.
 3. The computer-operated system of claim 2, wherein the means for controlling the brightness map comprises means for changing the brightness map.
 4. The computer-operated system of claim 1, wherein the means for controlling the temporal stimulation pattern comprises means for defining or changing the temporal stimulation pattern.
 5. The computer-operated system of claim 1, further comprising means disabling one or more electrodes.
 6. The computer-operated system of claim 1, wherein the video configuration file editor is for creating the video configuration file or modifying an existing video configuration file.
 7. The computer-operated system of claim 6, further comprising means for storing the created or modified video configuration file in a particular folder.
 8. The computer-operated system of claim 1, wherein the video configuration file editor controls at least one of: stimulation frequency, charge density limit, pulse width, interpulse time, determination whether a first phase is anodic or cathodic, current range, number of non-simultaneous electrode stimulation groups, minimum video level, number of saturated electrodes, and minimum stimulation values for each electrode.
 9. The computer-operated system of claim 1, wherein the video configuration file editor includes a first electrode screen and a second electrode screen, wherein electrode selection occurs through the first electrode screen and wherein selection of one or more electrodes on the first electrode screen is also shown on the second electrode screen.
 10. The computer-operated system of claim 2, wherein the means for controlling the brightness map include means for displaying the brightness for one or more electrodes each time the one or more electrodes are selected.
 11. The computer-operated system of claim 2, wherein the means for controlling the brightness map include means for adjusting a dynamic range factor of an electrode.
 12. The computer-operated system of claim 9, wherein groups of electrodes are selectable by selecting electrodes pertaining to a group of electrodes one after the other or all at the same time.
 13. The computer-operated system of claim 4, wherein controlling the temporal stimulation pattern to which an individual electrode or electrode groups are assigned defines one or more timing groups, and wherein distance between electrodes within the same time group is optimized, and wherein also temporal distance between the timing groups is optimized.
 14. The computer-operated system of claim 13, wherein the timing group assigned to each electrode is designated by a color code and/or a numerical value.
 15. The computer-operated system of claim 13, wherein selection of all electrodes within a same timing group occurs through double clicking on one of the electrodes of that timing group.
 16. The computer-operated system of claim 13, further comprising means for changing timing groups.
 17. The computer-operated system of claim 1, further comprising means for controlling the mapping of the video signal to the electrical signal.
 18. The computer-operated system of claim 1, wherein the video configuration file editor is a graphic user interface application adopting a model-view-controller architectural pattern.
 19. The computer-operated system of claim 18, wherein the architectural pattern comprises a main user interface class depending on an editable video configuration class, the editable video configuration class not depending on the main user interface class.
 20. The computer-operated system of claim 19, wherein the editable video configuration class comprises brightness map information, spatial map information and timing map information.
 21. The computer-operated system of claim 18, wherein the graphic user interface application is configured to perform auto-generation of the video configuration, editing of the video configuration, saving of the video configuration to file, and loading of the video configuration from file.
 22. The computer-operated system of claim 19, wherein the auto-generation of the video configuration comprises maximizing a total number of timing groups used in a video session and maximizing spatial distances between electrodes within a timing group. 